package com.ankicoo.database.service;

import java.util.List;
import java.util.Map;

/**
 * Description: 数据存取器
 *
 * @author : QCYANG
 * @date : 2021/11/17 10:36
 */
public interface DataBaseService {
    <T>List<T> selectAll(Class<T> classType);

    /**
     * 查询数据对象列表 根据sql语句
     * @param classType 对象类型
     * @param sql 查询语句
     * @return 对象列表
     */
    <T> List<T> selectList(Class<T> classType, String sql);

    /**
     * 查询数据对象列表 根据sql语句 及 参数
     * @param classType 对象类型
     * @param params 查询参数
     * @param sql 查询语句
     * @return 对象列表
     */
    <T>List<T> selectList(Class<T> classType, String sql, Map<String, Object> params);


    /**
     * 查询sql查询结果数据集
     * @param sql sql
     * @return 数据结果的map集合
     */
    List<Map<String, Object>> selectListMap(String sql);

    /**
     * 查询sql查询结果数据集 带参数
     * @param sql sql
     * @param params 参数
     * @return 数据结果的map集合
     */
    List<Map<String, Object>> selectListMap(String sql, Map<String, Object> params);

}
